// File:    TituloFinanceiro.cs
// Author:  Lucas Bittencourt
// Created: quarta-feira, 23 de novembro de 2011 23:59:32
// Purpose: Definition of Class TituloFinanceiro

using System;
using System.Text;

namespace DA_OOMModel
{
   public class TituloFinanceiro
   {
       private int ttfIdTitulo;
       private int ttfNuTitulo;
       private decimal ttfVlTitulo;
       private string ttfNuNossoNumero;
       private DateTime ttfDtEmissaoBoleto;
       private DateTime ttfDtVencimento;
       private DateTime ttfDtCadastro;

       private Iesi.Collections.ISet lancamentoFinanceiro;
      
      /// <summary>
      /// Property for collection of LancamentoFinanceiro
      /// </summary>
      /// <pdGenerated>Default opposite class collection property</pdGenerated>
      public virtual Iesi.Collections.ISet LancamentoFinanceiro
      {
         get
         {
            return lancamentoFinanceiro;
         }
         set
         {
            this.lancamentoFinanceiro = value;         
         }
      }

      /// <summary>
      /// Get value of property TtfIdTitulo.
      /// </summary>
      public virtual int TtfNuTitulo
      {
          get
          {
              return ttfNuTitulo;
          }
          set
          {
              if (this.ttfNuTitulo != value)
                  this.ttfNuTitulo = value;
          }
      }

      /// <summary>
      /// Get value of property TtfIdTitulo.
      /// </summary>
      public virtual int TtfIdTitulo
      {
         get
         {
            return ttfIdTitulo;
         }
         set
         {
            if (this.ttfIdTitulo != value)
               this.ttfIdTitulo = value;
         }
      }
      
      /// <summary>
      /// Get value of property TtfVlTitulo.
      /// </summary>
      public virtual decimal TtfVlTitulo
      {
         get
         {
            return ttfVlTitulo;
         }
         set
         {
            if (this.ttfVlTitulo != value)
               this.ttfVlTitulo = value;
         }
      }
      
      /// <summary>
      /// Get value of property TtfNuNossoNumero.
      /// </summary>
      public virtual string TtfNuNossoNumero
      {
         get
         {
            return ttfNuNossoNumero;
         }
         set
         {
            if (this.ttfNuNossoNumero != value)
               this.ttfNuNossoNumero = value;
         }
      }
      
      /// <summary>
      /// Get value of property TtfDtEmissaoBoleto.
      /// </summary>
      public virtual DateTime TtfDtEmissaoBoleto
      {
         get
         {
            return ttfDtEmissaoBoleto;
         }
         set
         {
            if (this.ttfDtEmissaoBoleto != value)
               this.ttfDtEmissaoBoleto = value;
         }
      }

      private Cliente cliente;

      /// <summary>
      /// Property for Cliente
      /// </summary>
      /// <pdGenerated>Default opposite class property</pdGenerated>
      public virtual Cliente Cliente
      {
          get
          {
              return cliente;
          }
          set
          {
              this.cliente = value;
          }
      }

      private Convenio convenio;

      /// <summary>
      /// Property for Convenio
      /// </summary>
      /// <pdGenerated>Default opposite class property</pdGenerated>
      public virtual Convenio Convenio
      {
          get
          {
              return convenio;
          }
          set
          {
              this.convenio = value;
          }
      }
      private Sacado sacado;

      /// <summary>
      /// Property for Sacado
      /// </summary>
      /// <pdGenerated>Default opposite class property</pdGenerated>
      public virtual Sacado Sacado
      {
          get
          {
              return sacado;
          }
          set
          {
              this.sacado = value;
          }
      }
      /// <summary>
      /// Get value of property TtfDtVencimento.
      /// </summary>
      public virtual DateTime TtfDtVencimento
      {
         get
         {
            return ttfDtVencimento;
         }
         set
         {
            if (this.ttfDtVencimento != value)
               this.ttfDtVencimento = value;
         }
      }
      
      /// <summary>
      /// Get value of property TtfDtCadastro.
      /// </summary>
      public virtual DateTime TtfDtCadastro
      {
         get
         {
            return ttfDtCadastro;
         }
         set
         {
            if (this.ttfDtCadastro != value)
               this.ttfDtCadastro = value;
         }
      }
   
      /// <summary>
      /// Get and set primary key class
      /// </summary>
      public virtual TituloFinanceiroPK TituloFinanceiroPK
      {
         get 
         {
            return new TituloFinanceiroPK(ttfIdTitulo);
         }
         set
         {
            if (value != null)
            {
               this.ttfIdTitulo = value.TtfIdTitulo;
            }
         }
      }
   
      /// <summary>
      /// Get hash code
      /// </summary>
      /// <pdGenerated>Get hash code</pdGenerated>
      public override int GetHashCode()
      {
         int _hashCode = 0;
         _hashCode = 29 * TituloFinanceiroPK.GetHashCode();
         _hashCode += 29 * ttfVlTitulo.GetHashCode();
      
         if (this.ttfNuNossoNumero != null) 
            _hashCode += 29 * ttfNuNossoNumero.GetHashCode();
      
         _hashCode += 29 * ttfDtEmissaoBoleto.GetHashCode();
      
         _hashCode += 29 * ttfDtVencimento.GetHashCode();
      
         _hashCode += 29 * ttfDtCadastro.GetHashCode();
         return _hashCode;
      }
   
      /// <summary>
      /// Test if two objects are equal
      /// </summary>
      /// <param name="object">Object to compare</param>
      /// <pdGenerated>Test if two objects are equal</pdGenerated>
      public override bool Equals(object obj)
      {
         if (obj == null)
            return false;
         TituloFinanceiro cast = obj as TituloFinanceiro;
         if (!(obj is TituloFinanceiro))
            return false;
         if (!this.TituloFinanceiroPK.Equals(cast.TituloFinanceiroPK))
            return false;
         if (this.ttfIdTitulo != cast.TtfIdTitulo)
            return false;
         if (this.ttfVlTitulo != cast.TtfVlTitulo)
            return false;
         if (String.Equals(this.ttfNuNossoNumero, cast.TtfNuNossoNumero) == false)
            return false;
      
         if (this.ttfDtEmissaoBoleto != cast.TtfDtEmissaoBoleto)
            return false;
         if (this.ttfDtVencimento != cast.TtfDtVencimento)
            return false;
         if (this.ttfDtCadastro != cast.TtfDtCadastro)
            return false;
      
         return true;
      }
   
      /// <summary>
      /// Get object in string format
      /// </summary>
      /// <pdGenerated>Get object in string format</pdGenerated>
      public override string ToString()
      {
         StringBuilder ret = new StringBuilder();
         ret.Append( "TituloFinanceiro: " );
         ret.Append( "TtfIdTitulo='" + ttfIdTitulo.ToString() + "'");
         ret.Append( "TtfVlTitulo='" + ttfVlTitulo.ToString() + "'");
         if (ttfNuNossoNumero != null)
            ret.Append( "TtfNuNossoNumero='" + ttfNuNossoNumero.ToString() + "'");
         ret.Append( "TtfDtEmissaoBoleto='" + ttfDtEmissaoBoleto.ToString() + "'");
         ret.Append( "TtfDtVencimento='" + ttfDtVencimento.ToString() + "'");
         ret.Append( "TtfDtCadastro='" + ttfDtCadastro.ToString() + "'");
         return ret.ToString();
      }
   
   }
}